Computer-generated scenes continue to become increasingly more realistic. One technique that greatly increases the realism of the scenes is the use of soft shadows. Soft shadows arise from area light sources for which the lighting's low-frequency directional dependence predominates over the effect of its high frequencies. Conversely, hard shadows arise from point or directional (i.e. high frequency) light sources. Several techniques exist to generate hard shadows in real-time such as shadow buffers. Hard shadow techniques can be extended to render soft shadows by numerically integrating over many light directions constituting the area light source. Unfortunately, these techniques do not generate soft shadows in real-time because integrating over a large light source area requires too many directional samples and thus too many rendering passes.
One recent real-time approach computes soft shadows using shadow and illumination fields. Shadow fields describe the shadowing effects of an individual scene entity at sampled points in its surrounding volumetric space. The illumination field for a local light source is referred to as a source radiance field (SRF). The SRF consists of cube maps that record incoming light from the illuminant at sample points in a surrounding volumetric space. An infinitely-distant environment map is a special case that can then be represented as a single SRF cube map. Each object in the scene is represented by an object occlusion field (OOF). The OOF records the occlusion of radiance by the object as viewed from sample points around the object. The soft shadows are then computed at runtime by rotating each blocker visibility function into the local coordinate frame and computing the spherical harmonic product over all of the blockers. While this technique improves the generation of soft shadows in dynamic scenes, the technique is still too computationally complex (e.g., spherical harmonics rotation and products) to allows the soft shadows to be efficiently generated when there are several objects moving in the scene.